package com.shujia.four;


import org.junit.Test;

import java.util.Arrays;

public class StingDemo {


    @Test
    public void test3() {
//    boolean contains(CharSequence s)：当且仅当此字符串包含指定的 char 值序列时，返回 true
        String s1 = "秋霜切玉剑，落日明珠袍。斗鸡事万乘，轩盖一何高。落日明珠袍";
        boolean result = s1.contains("落日明珠袍");
        System.out.println(result);

        result = s1.contains("落日明珠袍xxx");
        System.out.println(result);

//    int indexOf(String str)：返回指定子字符串在此字符串中第一次出现处的索引
        // 第一次
        // contains 返回true才会匹配
        int index = s1.indexOf("落日明珠袍");
        System.out.println(index);

        // 匹配不上, 返回-1
        index = s1.indexOf("落日明珠袍xxx");
        System.out.println(index);


//    int indexOf(String str, int fromIndex)：返回指定子字符串在此字符串中第一次出 现处的索引，从指定的索引开始
        index = s1.indexOf("落日明珠袍", 7);
        System.out.println(index);

//    int lastIndexOf(String str)：返回指定子字符串在此字符串中最后面出现处的索引
        s1 = "秋霜切玉剑，落日明珠袍。斗鸡事万乘，轩盖一何高。落日明珠袍";
        index = s1.lastIndexOf("落日明珠袍");
        System.out.println(index);

//    int lastIndexOf(String str, int fromIndex)：返回指定子字符串在此字符串中最后 一次出现处的索引，
//    从指定的索引开始反向搜索
        index = s1.lastIndexOf("落日明珠袍", 23);
        System.out.println(index);

//    注：indexOf和lastIndexOf方法如果未找到都是返回-1
        index = s1.lastIndexOf("落日明珠袍11", 23);
        System.out.println(index);
    }

    @Test
    public void test2() {
//        int compareTo(String anotherString)：比较两个字符串的大小


//        String substring(int	beginIndex)： 返回一个新的字符串， 它是此字符串的从
//        beginIndex开始截取到最后字符的一个子字符串。
        String s1 = "劝君莫拒杯，春风笑人来。桃李如旧识，倾花向我开。";
        String result = s1.substring(3);
        System.out.println(result);

//        String substring(int beginIndex, int endIndex) ：(beginIndex, endIndex]
//        返回一个新字符串，它是此字 符串从beginIndex开始截取到endIndex(不包含)的一个子字符串。
        result = s1.substring(6, 11);
        System.out.println(result);

//        boolean endsWith(String suffix)：测试此字符串是否以指定的后缀结束
        boolean flag = s1.endsWith("。");
        System.out.println(flag);

        flag = s1.endsWith("xxx");
        System.out.println(flag);

//        boolean startsWith(String prefix)：测试此字符串是否以指定的前缀开始
        flag = s1.startsWith("劝君莫拒杯，春风笑人来。桃李如旧识，倾花向我开。");
        System.out.println(flag);

        flag = s1.startsWith("xxx");
        System.out.println(flag);


//        boolean startsWith(String prefix, int toffset)：测试此字符串从指定索引开始的
//                子字符串是否以指定前缀开始
        flag = s1.startsWith("莫拒杯", 2);
        System.out.println(flag);


    }

    @Test
    public void test1() {
//        int length()：返回字符串的长度： return value.length
        int[] arr = {1};
        System.out.println(arr.length);
        String s1 = "abc";
        int len = s1.length();// java提供的方法
        System.out.println(len);
//        char charAt(int index)： 返回某索引处的字符return value[index]
        char c1 = s1.charAt(0);
        System.out.println(c1);

        System.out.println("---------------");
        // 遍历数组的字符
        for (int i = 0; i < s1.length(); i++) {
            char c = s1.charAt(i);
            System.out.println(c);
        }

        /*
        劝君莫拒杯，春风笑人来。桃李如旧识，倾花向我开。

        流莺啼碧树，明月窥金罍。昨日朱颜子，今日白发催。

        棘生石虎殿，鹿走姑苏台。自古帝王宅，城阙闭黄埃。

        君若不饮酒，昔人安在哉。25、《白马篇》龙马花雪毛，金鞍五陵豪。

        秋霜切玉剑，落日明珠袍。斗鸡事万乘，轩盖一何高。

        弓摧南山虎，手接太行猱。酒后竞风采，三杯弄宝刀。

        杀人如剪草，剧孟同游遨。发愤去函谷，从军向临洮。

        叱咤万战场，匈奴尽奔逃。归来使酒气，未肯拜萧曹。
         */
//        boolean isEmpty()：判断是否是空字符串：return value.length == 0
        String s2 = "流莺啼碧树，明月窥金罍。昨日朱颜子，今日白发催。";
        System.out.println(s2.isEmpty());// false
        s2 = "";
        System.out.println(s2.isEmpty());// true
//        String toLowerCase()：使用默认语言环境，将 String 中的所有字符转换为小写
        System.out.println("---------------");
        s2 = "ABCdefGHi";
        String result = s2.toLowerCase();
        System.out.println(result);

//        String toUpperCase()：使用默认语言环境，将 String 中的所有字符转换为大写
        System.out.println("---------------");
        s2 = "ABCdefGHi";
        result = s2.toUpperCase();
        System.out.println(result);
//        String trim()：返回字符串的副本，去除首尾的空格字符
        System.out.println("---------------");
        s2 = "    叱咤万战场，匈奴   尽奔逃    ";
        result = s2.trim();// 不会修改原来字符串的值
        System.out.println(s2);
        System.out.println(result);

//        boolean equals(Object obj)：比较字符串的内容是否相同
        System.out.println("---------------");
        boolean flag = result.equals("叱咤万战场，匈奴   尽奔逃");
        System.out.println(flag);

//        boolean equalsIgnoreCase(String anotherString)：与equals方法类似，忽略大小写
        s2 = "abcDEF";
        String s3 = "ABcdEF";
        System.out.println(s2.equalsIgnoreCase(s3));

        // System.out.println(s2.toUpperCase().equals(s3.toUpperCase()));

//        String concat(String str)：将指定字符串连接到此字符串的结尾。 等价于用“+”
        System.out.println(s2 + s3);
        System.out.println(s2.concat(s3));

    }
}
